package org.x.legalcasemod.entity;

import cn.idev.excel.annotation.ExcelProperty;
import com.mybatisflex.annotation.*;
import lombok.Data;
import org.x.commonmod.enums.LegalCase;
import org.x.commonmod.enums.LegalStatus;
import org.x.commonmod.enums.RiskLevel;

import java.lang.Long;
import java.util.Date;
import java.lang.Object;
import java.lang.String;
import java.lang.Integer;

/**
 * 案件表 实体类。
 *
 * @author mybatis-flex-helper automatic generation
 * @since 1.0
 */
@Table(value = "legal_case")
@UseDataSource("caseDS")
@Data
public class LegalCaseEntity {

    /**
     * 案件ID
     */
    @Id(keyType = KeyType.Auto)
    @ExcelProperty("案件ID")
    private Long id;

    /**
     * 案件编号
     */
    @Column(value = "case_no")
    @ExcelProperty("案件编号")
    private String caseNo;

    /**
     * 申请人ID
     */
    @Column(value = "user_id")
    @ExcelProperty("申请人ID")
    private Long userId;

    /**
     * 承办律师ID
     */
    @Column(value = "lawyer_id")
    @ExcelProperty("承办律师ID")
    private Long lawyerId;

    /**
     * 案件标题
     */
    @Column(value = "title")
    @ExcelProperty("案件标题")
    private String caseTitle;

    /**
     * 案件类型
     */
    @Column(value = "type")
    @ExcelProperty("案件类型")
    private LegalCase type;

    /**
     * 案件地域
     */
    @Column(value = "region")
    @ExcelProperty("案件地域")
    private String region;

    /**
     * 案情描述
     */
    @Column(value = "description")
    @ExcelProperty("案情描述")
    private String description;

    /**
     * 案件状态
     */
    @Column(value = "status")
    @ExcelProperty("案件状态")
    private LegalStatus status;

    /**
     * 当前处理阶段
     */
    @Column(value = "current_stage")
    @ExcelProperty("当前处理阶段")
    private String currentStage;

    /**
     * 进度百分比
     */
    @Column(value = "progress_percent")
    @ExcelProperty("进度百分比")
    private Integer progressPercent;

    /**
     * 申请时间
     */
    @Column(value = "apply_time")
    @ExcelProperty("申请时间")
    private Date applyTime;

    /**
     * 分配时间
     */
    @Column(value = "assign_time")
    @ExcelProperty("分配时间")
    private Date assignTime;

    /**
     * 律师受理时间
     */
    @Column(value = "accept_time")
    @ExcelProperty("律师受理时间")
    private Date acceptTime;

    /**
     * 完成时间
     */
    @Column(value = "complete_time")
    @ExcelProperty("完成时间")
    private Date completeTime;

    /**
     * 关闭原因
     */
    @Column(value = "close_reason")
    @ExcelProperty("关闭原因")
    private String closeReason;

    /**
     * 风险等级
     */
    @Column(value = "risk_level")
    @ExcelProperty("风险等级")
    private RiskLevel riskLevel;

    /**
     * 最近分析时间
     */
    @Column(value = "last_analyzed_time")
    @ExcelProperty("最近分析时间")
    private Date lastAnalyzedTime;

}
